New validation for CSCwr51759 Cleanup vnsRsCIfAtt usage in service#394
New validation for CSCwr51759 Cleanup vnsRsCIfAtt usage in service#394Harinadh-Saladi wants to merge 2 commits into
Conversation
| relation_dn = relation_attributes["dn"].strip() | ||
| if not relation_dn: | ||
| continue | ||
| target_dn = get_target_dn(relation_attributes) |
There was a problem hiding this comment.
dn is the full path of the relationship object, and tDn is the path of the target interface object it is attached to.
No need of check for tDN.
There was a problem hiding this comment.
i agree. its not resolved. at all.
| continue | ||
| relation_attributes = vnsRsCIfAttN["vnsRsCIfAttN"]["attributes"] | ||
| if "dn" not in relation_attributes: | ||
| continue |
There was a problem hiding this comment.
when mo is not configured, vnsRsCIfAttNs will be empty.. above if conditions not needed.
|
|
||
|
|
||
| @check_wrapper(check_title="Cleanup vnsRsCIfAtt usage in services") | ||
| def vns_rscifatt_cleanup_check(tversion, **kwargs): |
There was a problem hiding this comment.
change the proper function name and title
|
|
||
| Impact: | ||
|
|
||
| If any `vnsRsCIfAtt` relation exists without a matching `vnsRsCIfAttN` for the same concrete interface target (`tDn`), the upgrade is outage-risky and should be treated as affected. |
There was a problem hiding this comment.
please update the document as per impact and requirement.
| continue | ||
| missing_dn = old_relation_dn_by_key[relation_key] | ||
| tenant_name, device_name, logical_interface, concrete_interface = parse_relation_context(missing_dn) | ||
| data.append([tenant_name, device_name, logical_interface, concrete_interface, missing_dn]) |
There was a problem hiding this comment.
where is that fault case handled for post upgrade case..
fault : F1690
uni/tn-CSCwj49418/lDevVip-test/lIf-intf-cons/vnsConfIssue-lif-invalid-CIf
Configuration is invalid due to LIf has an invalid CIf
| [N9K-C9408 with more than 5 N9K-X9400-16W LEMs][d31] | CSCws82819 | :white_check_mark: | :no_entry_sign: | ||
| [Multi-Pod Modular Spine Bootscript File][d32] | CSCwr66848 | :white_check_mark: | :no_entry_sign: | ||
| [Inband Management Policy Misconfiguration][d33]| CSCwd40071 | :white_check_mark: | :no_entry_sign: | ||
| [Cleanup vnsRsCIfAtt usage in services][d34] | CSCwr51759 | :white_check_mark: | :no_entry_sign: |
There was a problem hiding this comment.
"Check missing vnsRsCIfAttN" ---> change the name
| [d31]: #n9k-c9408-with-more-than-5-n9k-x9400-16w-lems | ||
| [d32]: #multi-pod-modular-spine-bootscript-file | ||
| [d33]: #inband-management-policy-misconfiguration | ||
| [d34]: #cleanup-vnsrscifatt-usage-in-services |
|
|
||
| This check will verify the count of the `svccoreCtrlr` Managed Object and raise and alarm with the bug if object count found more than 240. Remove the content or objects of `svccoreCtrlr` or `svccoreNode`. Contact Cisco TAC or upgrade to a release containing the fix for CSCws84232 before proceeding with an upgrade. | ||
|
|
||
| ### Cleanup vnsRsCIfAtt usage in services |
|
|
||
| ### Cleanup vnsRsCIfAtt usage in services | ||
|
|
||
| Due to [CSCwr51759][70], when targeting 6.0(3)+, having only `vnsRsCIfAtt` without the corresponding `vnsRsCIfAttN` under the same `vnsLIf` can leave service graph interface attachment in an inconsistent state. |
There was a problem hiding this comment.
wrong buug mentioned. Please do the cleanup for bogus info.
There was a problem hiding this comment.
when upgrading to 6.0(3) and above, 'vnsRsCIfAtt' get deleted and without creating the corresponding 'vnsRsCIfAttN' under the same vnsLIf. this will leave service graph interface attachment in an inconsistent state
|
|
||
| Impact: | ||
|
|
||
| If any `vnsRsCIfAtt` relation exists without a matching `vnsRsCIfAttN` for the same concrete interface target (`tDn`), the upgrade is outage-risky and should be treated as affected. |
There was a problem hiding this comment.
no need for this ---> If any vnsRsCIfAtt relation exists without a matching vnsRsCIfAttN for the same concrete interface target (tDn), the upgrade is outage-risky and should be treated as affected.
|
|
||
| Suggestion: | ||
|
|
||
| Before the upgrade, add the missing `vnsRsCIfAttN` relation under the same cluster interface (`vnsLIf`) with the same concrete interface target (`tDn`). |
There was a problem hiding this comment.
specify the GUI path.. as discussed earlier
| return Result(result=ERROR, msg="Error occurred while fetching svccore object counts: {}".format(str(e)), doc_url=doc_url) | ||
|
|
||
|
|
||
| @check_wrapper(check_title="Cleanup vnsRsCIfAtt usage in services") |
| headers = ["Tenant", "Device Name", "Cluster Interface", "Missing Concrete Interface", "vnsRsCIfAtt DN"] | ||
| data = [] | ||
| recommended_action = ( | ||
| "Mo vnsRsCIfAtt is deprecated >=6.0(3d). Before upgrade, under Services, add the missing concrete interface as vnsRsCIfAttN under the same cluster interface" |
There was a problem hiding this comment.
this is not explainatery enough. please work on it.
|
|
||
| vnsRsCIfAttNs = icurl("class", "vnsRsCIfAttN.json?rsp-prop-include=config-only") | ||
|
|
||
| def get_target_dn(relation_attributes): |
There was a problem hiding this comment.
look for whole DN, not just Tdn. . this seems wrong to me.
you will see one small diff there for RsCifAtt/RsCifAttN --> make sure you cover this while comparing DN.
Added a new pre-upgrade validation to detect missing vnsRsCIfAttN relations for existing vnsRsCIfAtt entries under the same cluster interface and target concrete interface.
Enclosed comprehensive logs for the same.
CSCwr51759_Test_Logs.txt
CSCwr51759_Pytest_Logs.txt
Full_script_run_logs.txt